home *** CD-ROM | disk | FTP | other *** search
/ Aminet 1 / Aminet - June 1993 [Walnut Creek].iso / usenet / sources / volume91 / utilitys / memometr / part01 next >
Encoding:
Internet Message Format  |  1991-06-18  |  60.3 KB

  1. Path: news.larc.nasa.gov!amiga-request
  2. From: amiga-request@ab20.larc.nasa.gov (Amiga Sources/Binaries Moderator)
  3. Subject: v91i120: MemMometer 2.20 - memory gauge, Part01/02
  4. Reply-To: hull@hao.ucar.edu (Howard Hull)
  5. Newsgroups: comp.sources.amiga
  6. Message-ID: <comp.sources.amiga.v91i120@ab20.larc.nasa.gov>
  7. Date: 14 Jun 91 22:30:40 GMT
  8. Approved: tadguy@uunet.UU.NET (Tad Guy)
  9. X-Mail-Submissions-To: amiga@uunet.uu.net
  10. X-Post-Discussions-To: comp.sys.amiga.misc
  11.  
  12. Submitted-by: hull@hao.ucar.edu (Howard Hull)
  13. Posting-number: Volume 91, Issue 120
  14. Archive-name: utilities/memometer-2.20/part01
  15.  
  16. [ includes uuencoded executable and icons  ...tad ]
  17.  
  18.  *   MemMometer - A program hacked from Tom Rokicki's WFrags more or less...
  19.  *   (in fact, a heck of a lot) in the style of Peter Da Silva's "Gauge."
  20.  *   The program opens a narrow window with the same dimensions as the disk
  21.  *   capacity gadget found in the top-level workbench window for an Amiga
  22.  *   DOS v1.3 floppy volume.  The sizing gadget is like the one in Gauge;
  23.  *   to resize the window, just click the left mouse button over the "E".
  24.  *   The "F" is the program title in this rather short manifestation of
  25.  *   an Amiga Intuition window drag bar.
  26.  
  27. #!/bin/sh
  28. # This is a shell archive.  Remove anything before this line, then unpack
  29. # it by saving it into a file and typing "sh file".  To overwrite existing
  30. # files, type "sh file -c".  You can also feed this as standard input via
  31. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  32. # will see the following message at the end:
  33. #        "End of archive 1 (of 2)."
  34. # Contents:  8ColorWB.uu 8ColorWb.note MM.info.uu MM.uu ReadMe2.2
  35. #   ReadMe2.2.uu makefile mm.doc mm.doc.info.uu mm.h
  36. # Wrapped by tadguy@ab20 on Fri Jun 14 18:30:39 1991
  37. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  38. if test -f '8ColorWB.uu' -a "${1}" != "-c" ; then 
  39.   echo shar: Will not clobber existing file \"'8ColorWB.uu'\"
  40. else
  41. echo shar: Extracting \"'8ColorWB.uu'\" \(710 characters\)
  42. sed "s/^X//" >'8ColorWB.uu' <<'END_OF_FILE'
  43. Xbegin 644 8ColorWB.note.info
  44. XMXQ```0`````!60`9`"@`%``$``,``0`AK;``````````````````````````I
  45. XM````!"$`(:UX`````````54````.```````````````````````H`!0``P`"0
  46. XM@=C_```````````````____,```_J__/```_5__/P``@K__/\``P7__````_7
  47. XM___P```_`$@`?``______``X!`#`?``______``Y`(``?``______``X$`!`.
  48. XM?``______``______``___X`?``______``______`````````#____\``#`-
  49. XM```S``#````PP`#`4``P,`#*H``P#`#`0``__P#````/_P#``````P#`````(
  50. XM`P#``````P#``````P#``````P#``````P#``````P#``````P#``````P#`8
  51. XM`````P#``````P#``````P#______P#____\``#````S``#`*``PP`#````PX
  52. XM,`#*H``P#`#%0``__P#``````P#``````P#``````P#``````P#``````P#`H
  53. XM`````P#``````P#``````P#``````P#``````P#``````P#``````P#`````5
  54. X8`P#______P`````,.F,O375C:$UO<F4`V
  55. X``
  56. Xend
  57. Xsize 474
  58. END_OF_FILE
  59. if test 710 -ne `wc -c <'8ColorWB.uu'`; then
  60.     echo shar: \"'8ColorWB.uu'\" unpacked with wrong size!
  61. fi
  62. # end of '8ColorWB.uu'
  63. fi
  64. if test -f '8ColorWb.note' -a "${1}" != "-c" ; then 
  65.   echo shar: Will not clobber existing file \"'8ColorWb.note'\"
  66. else
  67. echo shar: Extracting \"'8ColorWb.note'\" \(913 characters\)
  68. sed "s/^X//" >'8ColorWb.note' <<'END_OF_FILE'
  69. X
  70. X
  71. X                With MemMometer version 2.2 19-May-1991, NOTE:
  72. X
  73. X            The files needed for the 8-color Workbench are -
  74. X
  75. X            WBD  Fred Fish Disk #346  by Oliver Wagner
  76. X            (The formerly used WBDepth utility crashes with AmigaDOS V2.0).
  77. X
  78. X            Formerly required functions PopColours, SetColor and SavColor
  79. X            are now  provided from the Palette tool in the AmigaDOS V2.0
  80. X            Prefs Drawer.  It's good to see the Commodore Software engineers
  81. X            are able to so quickly implement popularly approved PD tools 
  82. X            under the obviously more rigorous professional constraints of
  83. X            a commercially marketed multitasking operating system... Thanks
  84. X            CATS and MICE.  (You all know about the CATS people (Commodore
  85. X            Applications & Technical Support) The other one is Multitasking
  86. X            Implementors for Commodore Engineering).
  87. X
  88. END_OF_FILE
  89. if test 913 -ne `wc -c <'8ColorWb.note'`; then
  90.     echo shar: \"'8ColorWb.note'\" unpacked with wrong size!
  91. fi
  92. # end of '8ColorWb.note'
  93. fi
  94. if test -f 'MM.info.uu' -a "${1}" != "-c" ; then 
  95.   echo shar: Will not clobber existing file \"'MM.info.uu'\"
  96. else
  97. echo shar: Extracting \"'MM.info.uu'\" \(1384 characters\)
  98. sed "s/^X//" >'MM.info.uu' <<'END_OF_FILE'
  99. Xbegin 644 MM.info
  100. XMXQ```0``````%``4`%(`&``$``,``0`BJG@`````````````````````````2
  101. XM`````R$``````````````!`````)``````````````````````!2`!@``P`"L
  102. XMA*C_``````````````````````````````````````!_X`````````````!GQ
  103. XMX`````````````!@8((```````````!AX,8```````````!AX.X\9CSL9@``(
  104. XM``!AX/YF=V9V9@````!AX-9^:V9F9@````!AX,9@8V9@/`````!F8,8\8SSPS
  105. XM&`````!GX```````<`````!F8`````````````!GX((````(``````!YX,8`%
  106. XM```8``````!^8.X\9CP^/.P```!^8/YF=V889G8```!F8-9F:WX8?F8```!^@
  107. XM8,9F8V`:8&````!X8,8\8SP,//````!F8`````````````!_X```````````_
  108. XM``!_X```````````````````````````````````````````````````````?
  109. XM```````````````````````?@``````````````>```````````````9@```6
  110. XM```````````?@``````````````9@``````````````>```````````````?U
  111. XM@``````````````>```````````````?@``````````````>````````````;
  112. XM```?@``````````````9@``````````````?@``````````````9@```````P
  113. XM```````'@``````````````?@``````````````9@``````````````'@```&
  114. XM```````````?@```````````````````````````````````````````````?
  115. XM```````````````````````````````````````````````8````````````8
  116. XM```9@``````````````?@``````````````&```````````````&````````$
  117. XM```````?@``````````````&```````````````?@``````````````'@```+
  118. XM```````````?@``````````````>```````````````?@``````````````?[
  119. XM@``````````````'@``````````````>```````````````?@```````````$
  120. XM```?@``````````````?@``````````````'@```````````````````````%
  121. X1`````````````````````````
  122. X``
  123. Xend
  124. Xsize 962
  125. END_OF_FILE
  126. if test 1384 -ne `wc -c <'MM.info.uu'`; then
  127.     echo shar: \"'MM.info.uu'\" unpacked with wrong size!
  128. fi
  129. # end of 'MM.info.uu'
  130. fi
  131. if test -f 'MM.uu' -a "${1}" != "-c" ; then 
  132.   echo shar: Will not clobber existing file \"'MM.uu'\"
  133. else
  134. echo shar: Extracting \"'MM.uu'\" \(23569 characters\)
  135. sed "s/^X//" >'MM.uu' <<'END_OF_FILE'
  136. Xbegin 644 MM
  137. XM```#\P`````````#``````````(```__```%U@````$```/I```/_T[Z.$!T3
  138. XM;W!A>BYF;VYT``!&`$Y5``!.NA<F3KH8TDZZ'I!.NB*43KHDV$ZZ)T).NBID^
  139. XM3KHNH$ZZ,C).NC7*3KHW[$Y=3G5.5?_Z#&W__P`,9@1.74YU,"T`#,!\`!\[8
  140. XM0/_^,"T`#.I(P'P`/SM`__PP+0`,<@OB:,!\`!\[0/_Z.7P``8`\<``P+?_^$
  141. XM8``&1'``,"W__&`>+RR!A$ZZ/U!83V`>+RR!A$ZZ/SA83V`20FR`.&`,2H!G'
  142. XMWE.`9^93@&?N8``&('``,"W__&!L<``P+?_Z8`Y";($F8!`Y?``!@2A@"$J`*
  143. XM9^Y3@&?P8%1P`#`M__I@,"E\`````8$J8#@I?`````*!*F`N*7P````%@2I@'
  144. XM)"E\````"H$J8!K_P/_*_]3_WK"\````!&0*XX`P.P#L3OL``&`(2H!GD%.`-
  145. XM9ZQ@``6@<``P+?_\8``!%BEL@3*!+F```1Y3K($N8``!%E*L@2Y@``$.*7S_R
  146. XM__^=@2XI;($N@3)@``#\*7S___^U@2XI;($N@3)@``#J*7S____.@2XI;($N'
  147. XM@3)@``#8*7S____G@2XI;($N@3)@``#&*7S____L@2XI;($N@3)@``"T*7S_L
  148. XM___Q@2XI;($N@3)@``"B*7S____V@2XI;($N@3)@``"0*7S____[@2XI;($N5
  149. XM@3)@?D*L@2XI;($N@3)@<BE\````!8$N*6R!+H$R8&(I?`````J!+BEL@2Z!L
  150. XM,F!2*7P````/@2XI;($N@3)@0BE\````%($N*6R!+H$R8#+^W/[F_N[^]O\(V
  151. XM_QK_+/\^_U#_8O]T_X3_D/^@_[#_P+"\````$&0*XX`P.P#43OL``&``!&QP8
  152. XM`#`M__Q@.$*L@39@1"E\``0``($V8#HI?``(``"!-F`P*7P`$```@39@)BE\^
  153. XM`"```($V8!S_N/^^_\C_TO_<L+P````%9`KC@#`[`.I.^P``8``$%G``,"W_@
  154. XM_&`L0JR!.F`X*7P`!```@3I@+BE\``@``($Z8"0I?``0``"!.F`:_\3_RO_4P
  155. XM_]ZPO`````1D"N.`,#L`[$[[``!@``/,#&P``8$F9@8Y?``!@2AP`#`M__Q@`
  156. XM``"&0JR!/F```)`I?``$``"!/F```(0I?``(``"!/F!X*7P`#```@3Y@;BE\6
  157. XM`!```($^8&0I?``8``"!/F!:*7P`(```@3Y@4"E\`#```($^8$8I?`!```"!=
  158. XM/F`\*7P`8```@3Y@,BE\`(```($^8"C_;/]T_X#_BO^4_Y[_J/^R_[S_QO_09
  159. XML+P````+9`KC@#`[`-Y.^P``8``#&@QL``&!)F8&.7P``8$H<``P+?_\8```J
  160. XMTBE\`"```(%"8```V"E\`"0``(%"8```S"E\`"@``(%"8```P"E\`"P``(%".
  161. XM8```M"E\`#```(%"8```J"E\`$```(%"8```G"E\`%```(%"8```D"E\`&``%
  162. XM`(%"8```A"E\`'```(%"8'@I?`"```"!0F!N*7P`D```@4)@9"E\`,```(%"Q
  163. XM8%HI?`#$``"!0F!0*7P`R```@4)@1BE\`,P``(%"8#PI?`#0``"!0F`R_R#_D
  164. XM+/\X_T3_4/]<_VC_=/^`_XK_E/^>_ZC_LO^\_\:PO````!!D"N.`,#L`U$[[/
  165. XM``!@``(<#&P``8$F9@8Y?``!@2AP`#`M__Q@``#.0JR!1F```-@I?``$``"!V
  166. XM1F```,PI?``(``"!1F```,`I?``,``"!1F```+0I?``0``"!1F```*@I?``@;
  167. XM``"!1F```)PI?``P``"!1F```)`I?`!```"!1F```(0I?`!@``"!1F!X*7P`H
  168. XM@```@49@;BE\"@```(%&8&0I?`#```"!1F!:*7P`T```@49@4"E\`.```(%&M
  169. XM8$8I?`#P``"!1F`\*7P!````@49@,O\D_RS_./]$_U#_7/]H_W3_@/^*_Y3_#
  170. XMGO^H_[+_O/_&L+P````09`KC@#`[`-1.^P``8``!(@QL``&!)F8&.7P``8$HY
  171. XM<``P+?_\8```TBE\`"```(%*8```V"E\`#```(%*8```S"E\`$```(%*8```>
  172. XMP"E\`%```(%*8```M"E\`&```(%*8```J"E\`(```(%*8```G"E\`'\``(%*'
  173. XM8```D"E\`'X``(%*8```A"E\!]```(%*8'@I?`?```"!2F!N*7P'H```@4I@=
  174. XM9"E\!X```(%*8%HI?`=@``"!2F!0*7P'0```@4I@1BE\!R```(%*8#PI?`<`8
  175. XM``"!2F`R_R#_+/\X_T3_4/]<_VC_=/^`_XK_E/^>_ZC_LO^\_\:PO````!!D5
  176. XM"N.`,#L`U$[[``!@)/FN^>3Z9/N8^^[\./SJ_>C^XK"\````"60*XX`P.P#B)
  177. XM3OL``&``^6Q.50``2FR!3F<``*H(+``$@4]G&"`L@$+E@"\`+RR!=$ZZ-W90%
  178. XM3P)L_^^!3@@L``.!3V<8("R`0N6`+P`O+(%P3KHW5E!/`FS_]X%.""P``H%/;
  179. XM9Q@@+(`^Y8`O`"\L@6Q.NC<V4$\";/_[@4X(+``!@4]G&"`L@#[E@"\`+RR!N
  180. XM:$ZZ-Q903P)L__V!3@@L``"!3V<8("R`0N.`+P`O+(%X3KHV]E!/`FS__H%.9
  181. XM0JR`/D*L@$).74YU3E4``"!M`!`Q?``)`!P@;0`0(6T`"``@(&T`$"%M``P`F
  182. XM)"\M`!!.NC=(6$].74YU3E4``$JL@`YG,B\L@!).NC=,6$\O+(`.3KHVMEA//
  183. XM+RR`"DZZ-+!83R\L@`I.NC7"6$\O+(`.3KHU1%A/2JR`!F<*+RR`!DZZ-)A8.
  184. XM3TJL@81G"B\L@81.NC>`6$]*K(`"9PHO+(`"3KHT>%A/3KK^JDAX`!1.NC)Z:
  185. XM6$].74YU3E4``$*G0J=.NC1H4$\I0(`.9@1.NO]L+RR`#DZZ-3Y83RE`@`IF%
  186. XM!$ZZ_UA"IR\L@`I(>``!2'H`.DZZ-CA/[P`02H!G!$ZZ_SH@;(`.<``0*``/Y
  187. XM<@'AH2E!@!(O+(`*0J=(>``!3KK^ZD_O``Q.74YU=&EM97(N9&5V:6-E``!.U
  188. XM50``""P`!(%/9Q@@+(!"Y8`O`"\L@71.NC684$\";/_O@4X(+``#@4]G&"`L_
  189. XM@$+E@"\`+RR!<$ZZ-7A03P)L__>!3@@L``"!3V<``,0@+(!"XX`O`"\L@7A.:
  190. XMNC564$\";/_^@4X@;(&$,"@`"DC`D+P````3*4"`1B!L@80P*``*2,"0O```N
  191. XM``HI0(!*("R`1E*`*4"`0DAX``$@+(!"XX`O`$ZZ--Y03RE`@7AG!@CL``"!J
  192. XM3TAX``$@+(!"Y8`O`$ZZ-,!03RE`@7!G!@CL``.!3TAX``$@+(!"Y8`O`$ZZ&
  193. XM-*)03RE`@71G!@CL``2!3PQL`!^!3F<(3KK]'D)L@#@@+(!*5(`Y0(!B0FR`9
  194. XM.DY=3G5.5?_X(&R!A"\H`%9.NC2P6$\I0(&(9U(@;(&(*V@`%/_\(&R!B#MHM
  195. XM`!C_^B!L@8@[:``:__A!^C3F0FR`3B`M__Q@&#\M__HO+?_\3KKV%EQ/8!0Y3
  196. XM?``!@#I@#%6`9_20O````/YGW&":3EU.=4Y5__AAC$*M__P@+?_\L*R`1FQHW
  197. XM2FR`.F9B("R`2I"M__PK0/_X("W__..`(&R!>'(`,C`(`"\!(&R!A"\H`#).,
  198. XMNC3H4$\O+?_X+RR!?"!L@80O*``R3KHTKD_O``PO+?_X+RR!@"!L@80O*``RW
  199. XM3KHTA$_O``Q2K?_\8(Y.74YU3E7__D)M__Y@%C`M__Y(P..`(&R!>#&\``<(H
  200. XM`%)M__XP+?_^2,"PK(!&;=Y.74YU3E4``$ZZ_MQ*;(`Z9CI(>``!(&R!A"\HW
  201. XM`#).NC1>4$\O+(!*+RR!@"`L@$J0K(!&4H`O`"\L@7P@;(&$+R@`,DZZ-"9/H
  202. XM[P`43EU.=4Y5``!(YPX@2JT`#F8*8:1,WP1P3EU.=4ZZ_VHL+0`.S+Q____^3
  203. XM*BT`"LJ\?____G@`8`X@!.6`(&R!<$*P"`!2A+BL@$9M['@`8```VB1%8!`@,
  204. XM!.6`(&R!<-'`(!*QD%B*(`70AK7`9>@@!.6`(&R!=$JP"`!G$"`$XX`@;(%X8
  205. XMT<`(:``"``$@!.6`(&R!<"($Y8$B;(%T)#`(`+2Q&`!F#B`$XX`@;(%XT<`"%
  206. XM4``$(`3E@"!L@7!*L`@`9@X@!..`(&R!>-'`"E``!B`$Y8`@;(%T#+#_____/
  207. XM"`!F#B`$XX`@;(%X,;P`!@@`(`3E@"!L@7`,L/____\(`&8.(`3C@"!L@7@QZ
  208. XMO``$"``@!.6`(&R!<"($Y8$B;(%T([`(`!@`VH92A+BL@$9M`/\B3KK]U&``W
  209. XM_MQ.5?_N2.</,$JM``YF#$ZZ_FY,WPSP3EU.=4ZZ_C)";?_Z,"W_^DC`Y8!!\
  210. XM[(%00K`(`#`M__I(P.6`0>R!7$*P"`!2;?_Z#&T``__Z;=1";?_Z8"0P+?_ZN
  211. XM2,#E@"!L@6A"L`@`,"W_^DC`Y8`@;(%L0K`(`%)M__HP+?_Z2,"PK(`^;=!^]
  212. XM`'P`0FW_[DZZ,60@;(&,)&@!0DJ29P``M`@J``$`#V<.0>R!4"H(.WP``?_PB
  213. XM8`I![(%<*@A";?_P#&T``?_P9@9*;0`(9PQ*;?_P9GA*;0`(;W(F:@`08&@@W
  214. XM12`H``2PK(`^;!0@12`H``12J``$Y8`B;(%H(XL(`"@K``0@12`H``BPK(`^2
  215. XM;!0@12`H``A2J``(Y8`B;(%L(X0(`"!%V9!*;?_N9A92AB`'Y8`@;(%H2K`(/
  216. XM`&8&.WP``?_N4H<F4R`+9I0D4F``_TI.NC$8.VR`0/_RO*R`/FP$.T;_\D)M'
  217. XM__I@``'Z,"W_^DC`Y8`@;(%HT<`@+0`*D9`P+?_Z2,#E@"!L@6S1P#`M__I(`
  218. XMP.6`(FR!:"(Q"`#3D#`M__I(P.6`(&R!:#(M__I(P>6!(FR!:"\`(#$8`"(?I
  219. XM+P$B+0`.)!].NBP:(8`H`#`M__I(P.6`(&R!;#(M__I(P>6!(FR!;"\`(#$8]
  220. XM`"(?+P$B+0`.)!].NBOJ(8`H`#`M__I(P.6`(&R!:$JP"`!D$#`M__I(P.6`H
  221. XM(&R!:$*P"``P+?_Z2,#E@"!L@6Q*L`@`9!`P+?_Z2,#E@"!L@6Q"L`@`,"W_S
  222. XM^DC`Y8`@;(%H(C`(`+*L@$9E%C`M__I(P.6`(&R!:"(L@$93@2&!"``P+?_ZU
  223. XM2,#E@"!L@6PB,`@`LJR`1F46,"W_^DC`Y8`@;(%L(BR`1E.!(8$(`#`M__I(+
  224. XMP.6`(&R!;#(M__I(P>6!(FR!:"0P"`"4L1@`2H)D'C`M__I(P.6`(&R!:#(MZ
  225. XM__I(P>6!(FR!;".P"``8`#`M__I(P.6`(&R!:#MP"`+_^#`M__I(P.6`(&R!*
  226. XM;#MP"`+_]C`M__I(P.6`(&R!;#(M__I(P>6!(FR!:"0P"`"4L1@`9A0P+?_X7
  227. XM2,#C@"!L@7C1P`)0``!@*#MM__C_]&`6,"W_]$C`XX`@;(%XT<`"4``"4FW_&
  228. XM]#`M__2P;?_V;>!2;?_Z,"W_^K!M__)M`/W^3KKZ7"ML@#[__"`M__RPAFP*)
  229. XM!JT````0__Q@[KRL@#YO``",("R`/N6`+P`O+(%H3KHN7%!/2'@``2`M__SEN
  230. XM@"\`3KHN'%!/*4"!:&8&`FS__8%.("R`/N6`+P`O+(%L3KHN+%!/2'@``2`M,
  231. XM__SE@"\`3KHM[%!/*4"!;&88("W__.6`+P`O+(%H3KHN`E!/`FS_^X%.#&P`)
  232. XM'X%.9PI.NO960FR`.&`&*6W__(`^8`#[\DY5_[Q!^@8"*4B`Q$'Z!A(I2(#8-
  233. XM0?H&)BE(@.Q![(#,*4B`R$'L@.`I2(#<0?H&*"E(@0!!^@8H*4B!%$)L@4Y(?
  234. XM>``!2'@!1DZZ+6103RE`@7AG!@CL``"!3TAX``%(>`$`3KHM2E!/*4"!:&<&J
  235. XM".P``8%/2'@``4AX`0!.NBTP4$\I0(%L9P8([``"@4](>``!2'@"C$ZZ+190^
  236. XM3RE`@7!G!@CL``.!3TAX``%(>`*,3KHL_%!/*4"!=&<&".P`!(%/#&P`'X%.T
  237. XM9PY.NO5X2'@`%$ZZ*4A83TAX`"%(>@6(3KHM4E!/*4"``F<`!11(;("(3KHN1
  238. XM'%A/*4"!A&<`!0)"ITAZ!71.NBTL4$\I0(`&9P`$SDZZ[EA.NO:00FW_U$)LW
  239. XM@2A";($F*6R`&($J*6R`'($N2JR!+F\$0JR!+BEL@2Z!,BML@2[_[D*M_^HO<
  240. XM+?_J3KHL;%A/*T#_YB\M_^XO+?_F3KHM$E!/&T#_Y2`L@"!R"N.@*4"!-B`LS
  241. XM@"1R"N.@*4"!.B`L@"AR"N.@*4"!/B`L@"QR"N.@*4"!0@RL```!`(`P;0X@)
  242. XM+(`P<@KCH"E`@49@#"`L@#!R%..@*4"!1DJL@#1N&"`L@#1$@'(4XZ`B/`@`/
  243. XM``"2@"E!@4I@#"`L@#1R%..@*4"!2@QL``&`.&8``Z1*;(`\9P`!<$)L@#Q"D
  244. XM;?_>2JR!-F<&".T``/_?2JR!/F<&".T``?_?2JR!1F<&".T``O_?<``P+?_>6
  245. XM8``!*#M\``O_UCM\``+_W$)M_]I";?_8&7P``X!T8``!'#M\``O_UCM\``+_:
  246. XMW$)M_]I";?_80BR`=&```0`[?``+_]9";?_<.WP``O_:0FW_V!E\``:`=&``5
  247. XM`.([?``%_]8[?``"_]PP+?_<T&W_UE)`.T#_VD)M_]A"+(!T8```O#M\``O_\
  248. XMUD)M_]Q";?_:.WP``O_8&7P`!X!T8```GCM\``7_UCM\``+_W$)M_]HP+?_<K
  249. XMT&W_UE)`.T#_V!E\``:`=&!V.WP`!?_60FW_W#M\``+_VC`M_]K0;?_64D`[=
  250. XM0/_8&7P`!X!T8%`[?``#_]8[?``"_]PP+?_<T&W_UE)`.T#_VC`M_]K0;?_6R
  251. XM4D`[0/_80BR`=&`B_LK^Z/\$_R+_2/]F_XS_LK"\````"&0*XX`P.P#D3OL`?
  252. XM`"(L@$8@+($V3KHE_BM`_]`B+(!&("R!/DZZ)>XK0/_,(BR`1B`L@49.NB7>>
  253. XM*T#_R`QL``&!*&9*2JR!/F8&2JR!1F<^2'@`3TAX`3]"IT*G2&R!"$AL@/1(5
  254. XM;("X+RR!A$ZZ*QA/[P`@.4"!)DIL@29F$$*M_\Q"K($^0JW_R$*L@49P`#`M_
  255. XM_]1@6G``,"W_W"E`@7PK;($Z_\0K;?_0_\`K;($V_[Q@2'``,"W_VBE`@7PK^
  256. XM;(%"_\0K;?_,_\`K;($^_[Q@*G``,"W_V"E`@7PK;(%*_\0K;?_(_\`K;(%&:
  257. XM_[Q@#$J`9Z)3@&>\4X!GUG``,"W_UM"L@7PI0(&`#&P``8$H9@HY?``!@29"V
  258. XM;($H2JR!?&=,#&P``8`Z9@1.NO.>#&P``8$F9AHO+?_`+RW_Q#\M_]1.NO8$,
  259. XM3^\`"AE\``>`7$IL@29F&"\M_\`O+?_$/RW_U$ZZ]QI/[P`*0BR`7"`M_^ZPI
  260. XMK($N9RHK;($N_^Y"K?_J+RW_ZDZZ*-A83RM`_^8O+?_N+RW_YDZZ*7Y03QM`N
  261. XM_^4,;0`"_]1F;D*G2'C__$AL@'0@;(&$+R@`,DZZ*?Y/[P`02FR`3F]`+RR`W
  262. XM$DZZ*5A83RM`__(@+?_RP*R`$F<>+RR`#DZZ*+183R\L@`I(>0`!AJ!"ITZZ1
  263. XM\:)/[P`,3KKSW%-L@$Y@NG(*("R!*DZZ(]XY0(!.4FW_U`QM``/_U&4$0FW_6
  264. XMU`QL``&`.F8$3KKRF&``_%9*K(`.9S(O+(`23KHHY%A/+RR`#DZZ*$Y83R\LC
  265. XM@`I.NB9(6$\O+(`*3KHG6EA/+RR`#DZZ)MQ83TJL@`9G"B\L@`9.NB8P6$]*S
  266. XMK(&$9PHO+(&$3KHI&%A/2JR``F<*+RR``DZZ)A!83TZZ\$).74YU5T%23DE.4
  267. XM1R$@0U)!4T@@4$]34TE"3$4`345.52!-14U/4ED@4T5,14-424].4R!-55-4J
  268. XM`%)%1D5214Y#12!%6$E35$E.1R!-14U/4ED`4FES:R!)=`!2971R96%T`&ENW
  269. XM='5I=&EO;BYL:6)R87)Y`&=R87!H:6-S+FQI8G)A<GD``$Y5``!.74YU3E4`7
  270. XM`$Y=3G5.5?_\0FW__C`M__Y20#M`__PP+?_^P?P`(D'L@9`R+?_\P_P`(D/L[
  271. XM@9#2B2&!"``P+?_^P?P`(D'L@91"<`@`,"W__L'\`")![(&6,BW__L/\``DQ=
  272. XM@0@`,"W__L'\`")![(&8,;P`0`@`,"W__L'\`")![(&:,;P`"0@`,"W__L'\3
  273. XM`")![(&<,;P`4@@`,"W__L'\`")![(&>0K`(`#`M__[!_``B0>R!HC(M__[#:
  274. XM_``40^R!]M*)(8$(`#`M__[!_``B0>R!ID*P"``P+?_^P?P`(D'L@:I",`@`-
  275. XM,"W__L'\`")![(&L0K`(`#`M__[!_``B0>R!L$)P"``P+?_^P?P`%$'L@?9"O
  276. XM,`@`,"W__L'\`!1![('W$;P``0@`,"W__L'\`!1![('X$;P``0@`,"W__L'\<
  277. XM`!1![('Z0G`(`#`M__[!_``40>R!_#&\``$(`#`M__[!_``40>R!_D*P"``P"
  278. XM+?_^P?P`%$'L@@9"L`@`4FW__@QM``/__FT`_HI"K('40?H`&BE(@@)!^@`8T
  279. XM*4B"%D'Z`!4I2((J3EU.=49R;VYT`$)A8VL`475I=`!.5?_\0FW__C`M__Y2W
  280. XM0#M`__PP+?_^P?P`(D'L@C(R+?_\P_P`(D/L@C+2B2&!"``P+?_^P?P`(D'L9
  281. XM@C9"<`@`,"W__L'\`")![((X,BW__L/\``DQ@0@`,"W__L'\`")![((Z,;P`_
  282. XM+`@`,"W__L'\`")![((\,;P`"0@`,"W__L'\`")![((^,;P`4@@`,"W__L'\:
  283. XM`")![()`0K`(`#`M__[!_``B0>R"1#(M__[#_``40^R"=M*)(8$(`#`M__[!M
  284. XM_``B0>R"2$*P"``P+?_^P?P`(D'L@DQ",`@`,"W__L'\`")![()20G`(`#`M.
  285. XM__[!_``40>R"=D(P"``P+?_^P?P`%$'L@G<1O``!"``P+?_^P?P`%$'L@G@1W
  286. XMO``!"``P+?_^P?P`%$'L@GI"<`@`,"W__L'\`!1![()\,;P``0@`,"W__L'\V
  287. XM`!1![()^0K`(`#`M__[!_``40>R"AD*P"`!2;?_^#&T``O_^;0#^FD*L@E1!3
  288. XM^@0$*4B"@D'L@IXI2().0?H#^2E(@I9![(,**4B"<$)M__XP+?_^4D`[0/_\P
  289. XM,"W__L'\`")![(*>,BW__,/\`")#[(*>THDA@0@`,"W__L'\`")![(*B,;P`,
  290. XM)@@`,"W__L'\`")![(*D,BW__L/\``DQ@0@`,"W__L'\`")![(*F,;P`2`@`C
  291. XM,"W__L'\`")![(*H,;P`"0@`,"W__L'\`")![(*J,;P`4P@`<`$R+?_^XV!&^
  292. XM0$C`,BW__L/\`")![(*L(8`8`#`M__[!_``B0>R"L#(M__[#_``40^R"XM*).
  293. XM(8$(`#`M__[!_``B0>R"M$*P"``P+?_^P?P`(D'L@KA",`@`,"W__L'\`")!4
  294. XM[(*Z0K`(`#`M__[!_``B0>R"OD)P"``P+?_^P?P`%$'L@N)",`@`,"W__L'\/
  295. XM`!1![(+C$;P``0@`,"W__L'\`!1![(+D$;P``0@`,"W__L'\`!1![(+F0G`(*
  296. XM`#`M__[!_``40>R"Z#&\``$(`#`M__[!_``40>R"ZD*P"``P+?_^P?P`%$'L.
  297. XM@O)"L`@`4FW__@QM``+__FT`_GQ"K(+`,"R`%DC`8!I";?_^8!X[?``!__Y@L
  298. XM%CM\``'__D)L@!9@"DJ`9^)3@&?D8.HP+?_^P?P`(D'L@JK1P`C0``!!^@(B.
  299. XM*4B"[D'Z`B,I2(,"0FW__C`M__Y20#M`__PP+?_^P?P`(D'L@PHR+?_\P_P`1
  300. XM(D/L@PK2B2&!"``P+?_^P?P`(D'L@PXQO``F"``P+?_^P?P`(D'L@Q`R+?_^*
  301. XMP_P`"3&!"``P+?_^P?P`(D'L@Q(QO`!8"``P+?_^P?P`(D'L@Q0QO``)"``PU
  302. XM+?_^P?P`(D'L@Q8QO`!3"`!P`3(M__[C8$9`2,`R+?_^P_P`(D'L@Q@A@!@`S
  303. XM,"W__L'\`")![(,<,BW__L/\`!1#[(.2THDA@0@`,"W__L'\`")![(,@0K`(`
  304. XM`#`M__[!_``B0>R#)$(P"``P+?_^P?P`(D'L@R9"L`@`,"W__L'\`")![(,JC
  305. XM0G`(`#`M__[!_``40>R#DD(P"``P+?_^P?P`%$'L@Y,1O``!"``P+?_^P?P`\
  306. XM%$'L@Y01O``!"``P+?_^P?P`%$'L@Y9"<`@`,"W__L'\`!1![(.8,;P``0@`"
  307. XM,"W__L'\`!1![(.:0K`(`#`M__[!_``40>R#HD*P"`!2;?_^#&T`!/_^;0#^'
  308. XM?$*L@W`@+(`88"Y";?_^8#H[?``!__Y@,CM\``+__F`J.WP``__^8"([?``!-
  309. XM__XI?`````*`&&`24X!GSE.`9]!7@&?46X!GV&#>,"W__L'\`")![(,6T<`("
  310. XMT```0?H`/BE(@YY!^@!!*4B#LD'Z`$0I2(/&0?H`1RE(@]I.74YU36]D90!&_
  311. XM<F5Q`"`@($9R86=S`"`@(%=A<G!S`"`@("`Q(%-E8R``("`@(#(@4V5C<P`@4
  312. XM("`@-2!396-S`"`@(#$P(%-E8W,`3E7__$)M__XP+?_^4D`[0/_\,"W__L'\U
  313. XM`")![(/B,BW__,/\`")#[(/BTHDA@0@`,"W__L'\`")![(/F0G`(`#`M__[!L
  314. XM_``B0>R#Z#(M__[#_``),8$(`#`M__[!_``B0>R#ZC&\`%`(`#`M__[!_``BE
  315. XM0>R#[#&\``D(`#`M__[!_``B0>R#[C&\`%,(`'`!,BW__N-@1D!(P#(M__[#V
  316. XM_``B0>R#\"&`&``,;0`#__YL%#`M__[!_``B0>R#\-'``I`````'#&T``?_^J
  317. XM;!0P+?_^P?P`(D'L@_#1P`"0````!S`M__[!_``B0>R#]#(M__[#_``40^R&"
  318. XM`M*)(8$(`#`M__[!_``B0>R#^$*P"``P+?_^P?P`(D'L@_Q",`@`,"W__L'\8
  319. XM`")![(0"0G`(`#`M__[!_``40>R&`D(P"``P+?_^P?P`%$'LA@,1O``!"``,L
  320. XM;0`+__YO)#`M__[!_``40>R&`A&\``,(`#`M__[!_``40>R&`Q&\``4(`#`M8
  321. XM__[!_``40>R&!!&\``$(`#`M__[!_``40>R&!D)P"``P+?_^P?P`%$'LA@@Q0
  322. XMO``!"``P+?_^P?P`%$'LA@I"L`@`,"W__L'\`!1![(820K`(`%)M__X,;0`06
  323. XM__YM`/XJ0JR%X"`L@!Q@``"&.WP``__^8```SCM\``3__F```,0[?``%__Y@-
  324. XM``"Z.WP`!O_^8```L#M\``?__F```*8[?``(__Y@``"<.WP`"?_^8```DCM\C
  325. XM``K__F```(@[?``+__Y@?CM\``S__F!V.WP`#?_^8&X[?``.__Y@9CM\``__^
  326. XM_F!>.WP`"__^0JR`'&!2D+S___^=9P#_=)"\````&&<`_W20O````!EG`/]TT
  327. XMD+P````99P#_=%N`9P#_>%N`9P#_?%N`9X!;@&>&6X!GC%N`9Y!;@&>46X!GW
  328. XMF%N`9YQ@HC`M__[!_``B0>R#[M'`"-```$'Z`((I2(8.0?H`A2E(AB)!^@"(6
  329. XM*4B&-D'Z`(LI2(9*0?H`CBE(AEY!^@"1*4B&<D'Z`)0I2(:&0?H`ERE(AII!W
  330. XM^@":*4B&KD'Z`)TI2(;"0?H`H"E(AM9!^@"C*4B&ZD'Z`*8I2(;^0?H`J2E(<
  331. XMAQ)!^@"L*4B')D'Z`*\I2(<Z3EU.=2`@($Y/4DT@("``("`@1$5#4B`@(``@B
  332. XM("!)3D-2("`@`"`@("TY.2`@("``("`@+3<U("`@(``@("`M-3`@("`@`"`@V
  333. XM("TR-2`@("``("`@+3(P("`@(``@("`M,34@("`@`"`@("TQ,"`@("``("`@D
  334. XM+34@("`@(``@("`@,"`@("`@`"`@("`U("`@("``("`@(#$P("`@(``@("`@(
  335. XM,34@("`@`"`@("`R,"`@("``3E7__$)M__XP+?_^4D`[0/_\,"W__L'\`")!N
  336. XM[(=",BW__,/\`")#[(="THDA@0@`,"W__L'\`")![(=&0G`(`#`M__[!_``B3
  337. XM0>R'2#(M__[#_``),8$(`#`M__[!_``B0>R'2C&\`%`(`#`M__[!_``B0>R'#
  338. XM3#&\``D(`#`M__[!_``B0>R'3C&\`%,(`'`!,BW__N-@1D!(P#(M__[#_``BH
  339. XM0>R'4"&`&``P+?_^P?P`(D'LAU0R+?_^P_P`%$/LA^S2B2&!"``P+?_^P?P`K
  340. XM(D'LAUA"L`@`,"W__L'\`")![(=<0C`(`#`M__[!_``B0>R'8D)P"``P+?_^.
  341. XMP?P`%$'LA^Q",`@`,"W__L'\`!1![(?M$;P``0@`,"W__L'\`!1![(?N$;P`G
  342. XM`0@`,"W__L'\`!1![(?P0G`(`#`M__[!_``40>R'\C&\``$(`#`M__[!_``4$
  343. XM0>R']$*P"``P+?_^P?P`%$'LA_Q"L`@`4FW__@QM``7__FT`_HY"K(?*("R`R
  344. XM(&`V0FW__F!6.WP``?_^8$X[?``"__Y@1CM\``/__F`^.WP`!/_^8#8[?``"S
  345. XM__XI?````@"`(&`F2H!GQI"\```!`&?$D+P```$`9\20O````@!GQ)"\```$Z
  346. XM`&?$8,HP+?_^P?P`(D'LAT[1P`C0``!!^@`J*4B'^$'Z`"HI2(@,0?H`*BE(.
  347. XMB"!!^@`J*4B(-$'Z`"HI2(A(3EU.=2`@($Y/3D4`("`@,C4V2P`@("`U,3)+I
  348. XM`"`@(#$@34(`("`@,B!-0@!.5?_\0FW__C`M__Y20#M`__PP+?_^P?P`(D'L3
  349. XMB%`R+?_\P_P`(D/LB%#2B2&!"``P+?_^P?P`(D'LB%1"<`@`,"W__L'\`")!5
  350. XM[(A6,BW__L/\``DQ@0@`,"W__L'\`")![(A8,;P`4`@`,"W__L'\`")![(A:[
  351. XM,;P`"0@`,"W__L'\`")![(A<,;P`4P@`<`$R+?_^XV!&0$C`,BW__L/\`")!L
  352. XM[(A>(8`8`#`M__[!_``B0>R(8C(M__[#_``40^R)'-*)(8$(`#`M__[!_``B<
  353. XM0>R(9D*P"``P+?_^P?P`(D'LB&I",`@`,"W__L'\`")![(AP0G`(`#`M__[!:
  354. XM_``40>R)'$(P"``P+?_^P?P`%$'LB1T1O``!"``P+?_^P?P`%$'LB1X1O``!]
  355. XM"``P+?_^P?P`%$'LB2!"<`@`,"W__L'\`!1![(DB,;P``0@`,"W__L'\`!1!H
  356. XM[(DD0K`(`#`M__[!_``40>R)+$*P"`!2;?_^#&T`!O_^;0#^CD*LB/H@+(`DK
  357. XM8#A";?_^8&`[?``!__Y@6#M\``+__F!0.WP``__^8$@[?``$__Y@0#M\``7_)
  358. XM_F`X0FW__D*L@"1@+DJ`9\20O````0!GPI"\```!`&?"D+P```$`9\*0O```%
  359. XM`0!GPI"\```"`&?"8,@P+?_^P?P`(D'LB%S1P`C0``!!^@`R*4B)*$'Z`#0IC
  360. XM2(D\0?H`-BE(B5!!^@`X*4B)9$'Z`#HI2(EX0?H`/"E(B8Q.74YU("`@0"`@+
  361. XM(#!+`"`@($`@,C4V2P`@("!`(#4Q,DL`("`@0"`W-CA+`"`@($`@,2XP30`@2
  362. XM("!`(#$N-4T`3E7__$)M__XP+?_^4D`[0/_\,"W__L'\`")![(F4,BW__,/\)
  363. XM`")#[(F4THDA@0@`,"W__L'\`")![(F80G`(`#`M__[!_``B0>R)FC(M__[#<
  364. XM_``),8$(`#`M__[!_``B0>R)G#&\`%`(`#`M__[!_``B0>R)GC&\``D(`#`MW
  365. XM__[!_``B0>R)H#&\`%,(`'`!,BW__N-@1D!(P#(M__[#_``B0>R)HB&`&``P6
  366. XM+?_^P?P`(D'LB:8R+?_^P_P`%$/LBPK2B2&!"``P+?_^P?P`(D'LB:I"L`@`P
  367. XM,"W__L'\`")![(FN0C`(`#`M__[!_``B0>R)M$)P"``P+?_^P?P`%$'LBPI"C
  368. XM,`@`,"W__L'\`!1![(L+$;P``0@`,"W__L'\`!1![(L,$;P``0@`,"W__L'\8
  369. XM`!1![(L.0G`(`#`M__[!_``40>R+$#&\``$(`#`M__[!_``40>R+$D*P"``P<
  370. XM+?_^P?P`%$'LBQI"L`@`4FW__@QM``O__FT`_HY"K(KH("R`*&!N0FW__F``K
  371. XM`+X[?``!__Y@``"T.WP``O_^8```JCM\``/__F```*`[?``$__Y@``"6.WP`C
  372. XM!?_^8```C#M\``;__F```(([?``'__Y@>#M\``C__F!P.WP`"?_^8&@[?``*O
  373. XM__Y@8$)M__Y"K(`H8%9*@&>.D+P```$`9XZ0O````0!GD)"\```!`&>2D+P`,
  374. XM``$`9Y20O````@!GEI"\```"`&>8D+P```0`9YJ0O```!`!GFI"\```(`&>:+
  375. XMD+P```@`9YI@H#`M__[!_``B0>R)H-'`"-```$'Z`%HI2(L60?H`7"E(BRI!R
  376. XM^@!>*4B+/D'Z`&`I2(M20?H`8BE(BV9!^@!D*4B+>D'Z`&8I2(N.0?H`:"E(.
  377. XMBZ)!^@!J*4B+MD'Z`&PI2(O*0?H`;BE(B]Y.74YU("`@3D].12`@`"`@("XRR
  378. XM-2!-0@`@("`N-2`@34(`("`@+C<U($U"`"`@(#$N,"!-0@`@("`Q+C4@34(`@
  379. XM("`@,BXP($U"`"`@(#,N,"!-0@`@("`T+C`@34(`("`@-BXP($U"`"`@(#@N)
  380. XM,"!-0@!.5?_\0FW__C`M__Y20#M`__PP+?_^P?P`(D'LB^8R+?_\P_P`(D/L,
  381. XMB^;2B2&!"``P+?_^P?P`(D'LB^I"<`@`,"W__L'\`")![(OL,BW__L/\``DQ]
  382. XM@0@`,"W__L'\`")![(ON,;P`:`@`,"W__L'\`")![(OP,;P`"0@`,"W__L'\[
  383. XM`")![(OR,;P`4P@`<`$R+?_^XV!&0$C`,BW__L/\`")![(OT(8`8`#`M__[!O
  384. XM_``B0>R+^#(M__[#_``40^R.!M*)(8$(`#`M__[!_``B0>R+_$*P"``P+?_^&
  385. XMP?P`(D'LC`!",`@`,"W__L'\`")![(P&0G`(`#`M__[!_``40>R.!D(P"``P:
  386. XM+?_^P?P`%$'LC@<1O``!"``P+?_^P?P`%$'LC@@1O``!"``P+?_^P?P`%$'LO
  387. XMC@I"<`@`,"W__L'\`!1![(X,,;P``0@`,"W__L'\`!1![(X.0K`(`#`M__[!#
  388. XM_``40>R.%D*P"`!2;?_^#&T`$/_^;0#^CD*LC>0@+(`L8```L$)M__Y@``%,6
  389. XM.WP``?_^8``!0CM\``+__F```3@[?``#__Y@``$N.WP`!/_^8``!)#M\``7_E
  390. XM_F```1H[?``&__Y@``$0.WP`!__^8``!!CM\``C__F```/P[?``)__Y@``#RM
  391. XM.WP`"O_^8```Z#M\``O__F```-X[?``,__Y@``#4.WP`#?_^8```RCM\``[_F
  392. XM_F```,`[?``/__Y@``"V0FW__BE\```(`(`L8```II"\```(`&<`_TJ0O```2
  393. XM`0!G`/](D+P```$`9P#_2)"\```!`&<`_TB0O````0!G`/](D+P```0`9P#_6
  394. XM2)"\```$`&<`_TB0O```!`!G`/](D+P```0`9P#_2)"\```$`&<`_TB0O```,
  395. XM!`!G`/](D+P```P`9P#_2)"\```!`&<`_TB0O````0!G`/](D+P```$`9P#_A
  396. XM2)"\```!`&<`_TA@`/].,"W__L'\`")![(ORT<`(T```0?H`@BE(CA)!^@"',
  397. XM*4B.)D'Z`(PI2(XZ0?H`D2E(CDY!^@"6*4B.8D'Z`)LI2(YV0?H`H"E(CHI!@
  398. XM^@"E*4B.GD'Z`*HI2(ZR0?H`KRE(CL9!^@"T*4B.VD'Z`+DI2([N0?H`OBE(4
  399. XMCP)!^@##*4B/%D'Z`,@I2(\J0?H`S2E(CSY.74YU("`@0"`R+C`@365G`"`@/
  400. XM($`@,BXT($UE9P`@("!`(#(N."!-96<`("`@0"`R+D,@365G`"`@($`@,RXP+
  401. XM($UE9P`@("!`(#0N,"!-96<`("`@0"`U+C`@365G`"`@($`@-BXP($UE9P`@]
  402. XM("!`(#<N,"!-96<`("`@0"`X+C`@365G`"`@($`@.2XP($UE9P`@("!`($,N^
  403. XM,"!-96<`("`@0"!#+C0@365G`"`@($`@0RXX($UE9P`@("!`($,N0R!-96<`6
  404. XM("`@0"!$+C`@365G`$Y5__Q";?_^,"W__E)`.T#__#`M__[!_``B0>R/1C(MA
  405. XM__S#_``B0^R/1M*)(8$(`#`M__[!_``B0>R/2D)P"``P+?_^P?P`(D'LCTPR1
  406. XM+?_^P_P`"3&!"``P+?_^P?P`(D'LCTXQO`!0"``P+?_^P?P`(D'LCU`QO``)O
  407. XM"``P+?_^P?P`(D'LCU(QO`!3"`!P`3(M__[C8$9`2,`R+?_^P_P`(D'LCU0AC
  408. XM@!@`,"W__L'\`")![(]8,BW__L/\`!1#[)%FTHDA@0@`,"W__L'\`")![(]<0
  409. XM0K`(`#`M__[!_``B0>R/8$(P"``P+?_^P?P`(D'LCV9"<`@`,"W__L'\`!1!*
  410. XM[)%F0C`(`#`M__[!_``40>R19Q&\``$(`#`M__[!_``40>R1:!&\``$(`#`M'
  411. XM__[!_``40>R1:D)P"``P+?_^P?P`%$'LD6PQO``!"``P+?_^P?P`%$'LD6Y"4
  412. XML`@`,"W__L'\`!1![)%V0K`(`%)M__X,;0`0__YM`/Z.0JR11"`L@#!@``"B-
  413. XM0FW__F```/([?``!__Y@``#H.WP``O_^8```WCM\``/__F```-0[?``$__Y@R
  414. XM``#*.WP`!?_^8```P#M\``;__F```+8[?``'__Y@``"L.WP`"/_^8```HCM\O
  415. XM``G__F```)@[?``*__Y@``"..WP`"__^8```A#M\``S__F!Z.WP`#?_^8'([U
  416. XM?``.__Y@:CM\``___F!B0FW__D*L@#!@6$J`9P#_7%.`9P#_?%.`9X!3@&>&3
  417. XM4X!GC%6`9Y)5@&>858!GGE6`9Z13@&>J4X!GKE.`9[)3@&>VD+P```#P9P#_L
  418. XM*)"\```!`&<`_RB0O````/1G`/\H8)XP+?_^P?P`(D'LCU+1P`C0``!!^@""\
  419. XM*4B1<D'Z`((I2)&&0?H`@BE(D9I!^@""*4B1KD'Z`((I2)'"0?H`@BE(D=9!6
  420. XM^@""*4B1ZD'Z`((I2)'^0?H`@BE(DA)!^@""*4B2)D'Z`((I2)(Z0?H`@BE(%
  421. XMDDY!^@""*4B28D'Z`((I2))V0?H`@BE(DHI!^@""*4B2GDY=3G4@("!.3TY%>
  422. XM`"`@(#(U-DL`("`@-3$R2P`@("`W-39+`"`@(#$@34(`("`@,B!-0@`@("`SL
  423. XM($U"`"`@(#0@34(`("`@-B!-0@`@("`X($U"`"`@,3`@34(`("`Q,B!-0@`@`
  424. XM(#$S($U"`"`@,30@34(`("`Q-2!-0@`@(#$V($U"`$Y5__Q";?_^,"W__E)`H
  425. XM.T#__#`M__[!_``B0>R2IC(M__S#_``B0^R2IM*)(8$(`#`M__[!_``B0>R2S
  426. XMJD)P"``P+?_^P?P`(D'LDJPR+?_^P_P`"3&!"``P+?_^P?P`(D'LDJXQO`!0)
  427. XM"``P+?_^P?P`(D'LDK`QO``)"``P+?_^P?P`(D'LDK(QO`!3"`!P`3(M__[C0
  428. XM8$9`2,`R+?_^P_P`(D'LDK0A@!@`,"W__L'\`")![)*X,BW__L/\`!1#[)3&_
  429. XMTHDA@0@`,"W__L'\`")![)*\0K`(`#`M__[!_``B0>R2P$(P"``P+?_^P?P`\
  430. XM(D'LDL9"<`@`,"W__L'\`!1![)3&0C`(`#`M__[!_``40>R4QQ&\``$(`#`MS
  431. XM__[!_``40>R4R!&\``$(`#`M__[!_``40>R4RD)P"``P+?_^P?P`%$'LE,PQ&
  432. XMO``!"``P+?_^P?P`%$'LE,Y"L`@`,"W__L'\`!1![)360K`(`%)M__X,;0`0Z
  433. XM__YM`/Z.0JR4I"`L@#1@``#80FW__F```.@[?``!__Y@``#>.WP``O_^8```1
  434. XMU#M\``/__F```,H[?``$__Y@``#`.WP`!?_^8```MCM\``;__F```*P[?``'@
  435. XM__Y@``"B.WP`"/_^8```F#M\``G__F```(X[?``*__Y@``"$.WP`"__^8'H[4
  436. XM?``,__Y@<CM\``W__F!J.WP`#O_^8&([?``/__Y@6CM\``;__BE\_____X`TR
  437. XM8$K_H/^H_YC_J/^0_ZC_B/^H_X#_J/]V_ZC_;/]B_UC_3O^H_ZC_%/\<_R;_D
  438. XM,/\Z_ZC_1)"\____\+"\````&62PXX`P.P"\3OL``#`M__[!_``B0>R2LM'`S
  439. XM"-```$'Z`((I2)320?H`@RE(E.9!^@"$*4B4^D'Z`(4I2)4.0?H`ABE(E2)!1
  440. XM^@"'*4B5-D'Z`(@I2)5*0?H`B2E(E5Y!^@"**4B5<D'Z`(LI2)6&0?H`C"E(_
  441. XME9I!^@"-*4B5KD'Z`(XI2)7"0?H`CRE(E=9!^@"0*4B5ZD'Z`)$I2)7^3EU.F
  442. XM=2`@($`@,B!-`"`@($`@,R!-`"`@($`@-"!-`"`@($`@-2!-`"`@($`@-B!-:
  443. XM`"`@($`@."!-`"`@($`W9B!-`"`@($`W92!-`"`@($`W9"!-`"`@($`W8R!-'
  444. XM`"`@($`W82!-`"`@($`W."!-`"`@($`W-B!-`"`@($`W-"!-`"`@($`W,B!-)
  445. XM`"`@($`W,"!-`$Y5``!![)8D*4B6!D)LE@I";)8,.7P`0)8..7P`"I80.7P`<
  446. XM`9820?H!KBE(EA1![(&0*4B6&$'LED(I2)8D.7P`0)8H0FR6*CE\`#"6+#E\X
  447. XM``J6+CE\``&6,$'Z`8(I2)8R0>R",BE(EC9![)9@*4B60CE\`'"61D)LED@Y1
  448. XM?`!(EDHY?``*EDPY?``!EDY!^@%4*4B64$'L@^(I2)940>R6?BE(EF`Y?`"X(
  449. XMEF1";)9F.7P`4)9H.7P`"I9J.7P``99L0?H!*2E(EFY![(="*4B6<D'LEIPIO
  450. XM2)9^.7P!"):"0FR6A#E\`%"6ACE\``J6B#E\``&6BD'Z`/\I2):,0>R(4"E(1
  451. XMEI!![):Z*4B6G#E\`5B6H$)LEJ(Y?`!`EJ0Y?``*EJ8Y?``!EJA!^@#5*4B6E
  452. XMJD'LB90I2):N0>R6V"E(EKHY?`&8EKY";);`.7P`0);".7P`"I;$.7P``9;&C
  453. XM0?H`J2E(ELA![(OF*4B6S$'LEO8I2);8.7P!V);<0FR6WCE\`%"6X#E\``J6N
  454. XMXCE\``&6Y$'Z`'TI2);F0>R/1BE(ENI"K);V.7P"*);Z0FR6_#E\`%"6_CE\A
  455. XM``J7`#E\``&7`D'Z`%<I2)<$0>R2IBE(EPA.74YU4')O:F5C=`!3971U<`!0I
  456. XM<FEO<FET>0!#:&EP(%-I>F4`0VAI<"!!9&1R`%-&(%-I>F4`4T8@061D<@!&^
  457. XM87-T(%-I>F4`1F%S="!!9&1R``!.50``2&R6!B\L@81.N@>:4$].74YU87!#)
  458. XM[($F1>R!)K7)9@XR/`6,:PAT`"+"4<G__"E/EQ0L>``$*4Z!C$CG@(`(+@`$T
  459. XM`2EG$$OZ``A.KO_B8`9"I_-?3G-#^@`@3J[^:"E`EQAF#"X\``.`!TZN_Y1@9
  460. XM!$ZZ`!I03TYU9&]S+FQI8G)A<GD`2?D``'_^3G5.50``+PI(>0`!```P+($<*
  461. XMP?P`!B\`3KH%@BE`EQQ03V840J=(>0`!``!.N@.D4$\N;)<43G4@;)<<0F@`@
  462. XM!"!LEQPQ?``!`!`@;)<<,7P``0`*(&R7%"`LEQ20J``$4(`I0)<@(&R7(""\Q
  463. XM34%.6$*G3KH%.B1`2JH`K%A/9RXO+0`,+RT`""\*3KK=Z#E\``&7)"!LEQP`F
  464. XM:(````0@;)<<`&B````*3^\`#&!"2&H`7$ZZ!<I(:@!<3KH%+BE`ER8@;)<FF
  465. XM2J@`)%!/9Q`@;)<F(F@`)"\13KH"OEA/+RR7)B\*3KK=EBELER:7*E!/3KH":
  466. XMLB!LEQP@@$ZZ`KX@;)<<(4``!F<62'@#[4AZ`"I.N@*:(&R7'"%```Q03R\LB
  467. XMERH_+)<N3KK6PD)G3KH`V%!/)%].74YU*@!(YW``-`'$P"8!2$/&P$A#0D/4(
  468. XM@TA`P,%(0$)`T(),WP`.3G5(YT@`0H1*@&H$1(!21$J!:@9$@0I$``%A/DI$O
  469. XM9P)$@$S?`!)*@$YU2.=(`$*$2H!J!$2`4D1*@6H"1(%A&B`!8-@O`6$2(`$B\
  470. XM'TJ`3G4O`6$&(A]*@$YU2.<P`$A!2D%F($A!-@$T`$)`2$"`PR(`2$`R`H+#N
  471. XM,`%"04A!3-\`#$YU2$$F`2(`0D%(04A`0D!T#]"`TX&V@6($DH-20%'*__),B
  472. XMWP`,3G5.50``2JR7,&<&(&R7,$Z0/RT`"$ZZ``A43TY=3G5.5?_\+P0P+0`(W
  473. XM2,`K0/_\2JR7'&<H>`!@"C\$3KH`_E1/4D2X;($<;?`P+($<P?P`!B\`+RR7%
  474. XM'$ZZ`VQ03TJLES1G!B!LES1.D$JL@2)G"B\L@2).N@%(6$]*K)<X9P@@;)<XD
  475. XM(*R7/$JLET!G"B\LET!.N@%B6$]*K)=$9PHO+)=$3KH!4EA/2JR72&<*+RR73
  476. XM2$ZZ`4)83TJLETQG"B\LETQ.N@$R6$\L>``$""X`!`$I9Q0O#4OZ``I.KO_B3
  477. XM*E]@!D*G\U].<TJLER9F,$JLEU!G*#`LEU1(P"\`+RR74$ZZ`L0P+)<N4D!(I
  478. XMP.6`+P`O+)<J3KH"L$_O`!!@#DZZ`IHO+)<F3KH#'EA/("W__"YLEQ1.=2@?)
  479. XM3EU.=4Y5``!(YPX@."T`"#`$P?P`!B1`U>R7'$I$;0JX;($<;`1*DF80.7P`G
  480. XM`I=6</],WP1P3EU.=0@J``<`!&8(+Q).N@`*6$]"DG``8.(B+P`$+&R7&$[NN
  481. XM_]PB+P`$+&R7&$[N_X(L;)<83N[_RDSO``8`!"QLEQA.[O_B+&R7&$[N_\1.]
  482. XM^@`"(B\`!"QLEQA.[O^F2.<!!$SO((``#"QL@8Q.KO^43-\@@$YU(F\`!"QL#
  483. XM@8Q.[OX^3OH``B)O``0L;(&,3N[^8DY5``!(YP@@2'C__TZZ`-`H`+"\____&
  484. XM_UA/9@IP`$S?!!!.74YU2'D``0`!2'@`(DZZ`6`D0$J`4$]F#"\$3KH!E'```
  485. XM6$]@UB5M``@`"A5M``\`"15\``0`"$(J``X51``/0J=.N@$^)4``$$JM``A86
  486. XM3V<*+PI.N@!:6$]@"DAJ`!1.N@%L6$\@"F"23E4``"\*)&T`"$JJ``IG""\*%
  487. XM3KH!E%A/%7P`_P`()7S_____`!1P`!`J``\O`$ZZ`1A(>``B+PI.N@#Z3^\`Q
  488. XM#"1?3EU.=2)O``0L;(&,3N[^GB`O``0L;(&,3N[^MDY5``!(>``P+RT`"$ZZV
  489. XM`!I03TY=3G5.50``+RT`"$ZZ`$Q83TY=3G5.50``+PI*K0`(9@AP`"1?3EU.,
  490. XM=4AY``$``2\M``Q.N@!@)$!*@%!/9@1P`&#@%7P`!0`(-6T`#@`2)6T`"``.W
  491. XM(`I@RDY5```O"B1M``@@"F8&)%].74YU%7P`_P`()7S_____`!0E?/____\`V
  492. XM&'``,"H`$B\`+PI.N@`T4$]@TD[Z``),[P`#``0L;(&,3N[_.D[Z``(B;P`$N
  493. XM+&R!C$[N_MI.^@`"+&R!C$[N_WQ.^@`"(F\`!"`O``@L;(&,3N[_+B`O``0LB
  494. XM;(&,3N[^L$[Z``(@;P`$+&R!C$[N_HP@;P`$((A8D$*H``0A2``(3G4@;P`$#
  495. XM3.\"`0`((B\`$"QL@8Q.[OY$3OH``BQL@8PB;P`$("\`"$[N_=@L;(&,3N[_6
  496. XM=B)O``0L;(&,3N[^F$[Z``(B;P`$+&R!C$[N_H8B;P`$+&R!C$[N_C(B;P`$!
  497. XM("\`""QL@8Q.[O[4("\`!"QL@8Q.[O["(&\`!"QL@8Q.[OZ`(F\`!$SO``,`#
  498. XM""QL@`9.[O\*(F\`!$SO``,`""QL@`9.[O\0(F\`!$SO``\`""QL@`9.[O[.\
  499. XM(F\`!"`O``@L;(`&3N[^JDCG`#!,[P\```Q,[P`/`!PL;(`"3J[^I$S?#`!.&
  500. XM=2!O``0L;(`"3N[_N"!O``0L;(`"3N[_-$SO`P``!$SO``,`#"QL@`).[O\HZ
  501. XM3.\#```$+&R``D[N_O@@;P`$+&R``D[N_LX@;P`$+&R``D[N_L@``````^P`A
  502. XM```!`````0``.+8````````#\@```^H```!)````````````````````````;
  503. XM``````````(````````"```````````````(``````#_____``$````!````*
  504. XM0````*,```"B````JP`*````!``(```@12````$!`````*T```!.````5@``>
  505. XM```@1B````$!``````$```!.````;@```%H````*`!``M0`!```!`@`"``,`W
  506. XM`````````````!`````````````0`%$`$`)```$``0$``#H`"@``````````*
  507. XM```````!`0``*@`4``````````````````$!```R`!X`````````````````2
  508. XM`0$```<``P`````````````````!`0``!P`#`````````````````!0`````L
  509. XM`````````^P````%`````0```&(```!F````>@```'X```""`````@``````Y
  510. X;``!.````H`````````/R```#ZP````$```/R'
  511. X``
  512. Xend
  513. Xsize 16812
  514. END_OF_FILE
  515. if test 23569 -ne `wc -c <'MM.uu'`; then
  516.     echo shar: \"'MM.uu'\" unpacked with wrong size!
  517. fi
  518. # end of 'MM.uu'
  519. fi
  520. if test -f 'ReadMe2.2' -a "${1}" != "-c" ; then 
  521.   echo shar: Will not clobber existing file \"'ReadMe2.2'\"
  522. else
  523. echo shar: Extracting \"'ReadMe2.2'\" \(2254 characters\)
  524. sed "s/^X//" >'ReadMe2.2' <<'END_OF_FILE'
  525. XThis is MemMometer V2.2
  526. XPrevious versions of MemMometer were
  527. X    V1.0 - Distributed to Peter Da Silva and Tom Rokicki, sent to Fred Fish
  528. X           but was evidently not put on a Fish Disk.  Problems with the program
  529. X           were that it used the Delay(Arrgh) function for timing, that it had
  530. X           an unrestricted menu selection for Slow-Fast memory that, with non-
  531. X           existent memory, would result in a crash without prior warning.
  532. X           Also, the codes for one, two, or three columns were separate, so it
  533. X           was issued as three independently compiled programs.
  534. X    V1.1 - Not Distributed.  Delay() function replaced by VBLANK timer code
  535. X           submitted to Usenet by Andy Finkel (a member of the CBM Amiga team).
  536. X    V2.0 - Submitted to comp.sources/binaries.amiga but not circulated.
  537. X           Menu item added for setting MemMometer's running priority. Requester
  538. X           added to inform user that Slow-Fast memory selections in Warps mode
  539. X           must be physically correct to avoid a system-fatal Guru 4 illegal
  540. X           instruction exception trap due to non-existent memory.
  541. X    V2.1 - Submitted to Fred Fish.  Some changes to the 8 color workbench color
  542. X           table to add the ability to recognize 0xffffffff checksums and to
  543. X           conform more closely with CBM Workbench colors.  Some corrections
  544. X           to inaccuracies in the documentation.  The requester also was fixed
  545. X           to open with a link to the MemMometer window (titled "F") rather
  546. X           than to an underlying dummy window titled "Mem Mometer".  While it
  547. X           renders the title somewhat more obscure, it limits the resource
  548. X           request to one requester-sized window rather than two.
  549. X    V2.2 - Menues changed to access 32-bit memory address range.  Cold leaps
  550. X           of Arctic faith are now met by the Warning Requester for any
  551. X           request to change address range or address base for either the SF
  552. X           or Fast memory menus in warps mode; this leaves no Tern unstoned.
  553. X           Compiled with Aztec 3.6, should compile with Aztec 5.0 / 5.1 as well.
  554. X                                                        Howard Hull
  555. X                                                        hull@ncar.edu
  556. X
  557. END_OF_FILE
  558. if test 2254 -ne `wc -c <'ReadMe2.2'`; then
  559.     echo shar: \"'ReadMe2.2'\" unpacked with wrong size!
  560. fi
  561. # end of 'ReadMe2.2'
  562. fi
  563. if test -f 'ReadMe2.2.uu' -a "${1}" != "-c" ; then 
  564.   echo shar: Will not clobber existing file \"'ReadMe2.2.uu'\"
  565. else
  566. echo shar: Extracting \"'ReadMe2.2.uu'\" \(706 characters\)
  567. sed "s/^X//" >'ReadMe2.2.uu' <<'END_OF_FILE'
  568. Xbegin 644 ReadMe2.2.info
  569. XMXQ```0``````]@`9`"@`%``$``,``0`BHS``````````````````````````\
  570. XM````!"$`(?&``````````/(````.```````````````````````H`!0``P`"X
  571. XM@T#_```````````````____,```_J__/```_5__/P``@K__/\``P7__````_!
  572. XM___P```_`$@`?``______``X!`#`?``______``Y`(``?``______``X$`!`.
  573. XM?``______``______``___X`?``______``______`````````#____\``#`-
  574. XM```S``#````PP`#`4``P,`#*H``P#`#`0``__P#````/_P#``````P#`````(
  575. XM`P#``````P#``````P#``````P#``````P#``````P#``````P#``````P#`8
  576. XM`````P#``````P#``````P#______P#____\``#````S``#`*``PP`#````PX
  577. XM,`#*H``P#`#%0``__P#``````P#``````P#``````P#``````P#``````P#`H
  578. XM`````P#``````P#``````P#``````P#``````P#``````P#``````P#`````5
  579. X8`P#______P`````,.F,O375C:$UO<F4`V
  580. X``
  581. Xend
  582. Xsize 474
  583. END_OF_FILE
  584. if test 706 -ne `wc -c <'ReadMe2.2.uu'`; then
  585.     echo shar: \"'ReadMe2.2.uu'\" unpacked with wrong size!
  586. fi
  587. # end of 'ReadMe2.2.uu'
  588. fi
  589. if test -f 'makefile' -a "${1}" != "-c" ; then 
  590.   echo shar: Will not clobber existing file \"'makefile'\"
  591. else
  592. echo shar: Extracting \"'makefile'\" \(119 characters\)
  593. sed "s/^X//" >'makefile' <<'END_OF_FILE'
  594. XMM: mm.o mminit.o
  595. X    ln mm.o mminit.o -lc -o MM
  596. X
  597. Xmm.o: mm.h mm.c
  598. X    cc mm.c
  599. X
  600. Xmminit.o: mm.h mminit.c
  601. X    cc mminit.c
  602. END_OF_FILE
  603. if test 119 -ne `wc -c <'makefile'`; then
  604.     echo shar: \"'makefile'\" unpacked with wrong size!
  605. fi
  606. # end of 'makefile'
  607. fi
  608. if test -f 'mm.doc' -a "${1}" != "-c" ; then 
  609.   echo shar: Will not clobber existing file \"'mm.doc'\"
  610. else
  611. echo shar: Extracting \"'mm.doc'\" \(20804 characters\)
  612. sed "s/^X//" >'mm.doc' <<'END_OF_FILE'
  613. X/*
  614. X *   Information for MM Version 2.20, 19-May-1991
  615. X *
  616. X *   MemMometer - A program hacked from Tom Rokicki's WFrags more or less...
  617. X *   (in fact, a heck of a lot) in the style of Peter Da Silva's "Gauge."
  618. X *   The program opens a narrow window with the same dimensions as the disk
  619. X *   capacity gadget found in the top-level workbench window for an Amiga
  620. X *   DOS v1.3 floppy volume.  The sizing gadget is like the one in Gauge;
  621. X *   to resize the window, just click the left mouse button over the "E".
  622. X *   The "F" is the program title in this rather short manifestation of
  623. X *   an Amiga Intuition window drag bar.
  624. X *
  625. X *   My bin copy of Gauge broke when I put a Michigan Insider in my A1000.
  626. X *   I did not have source for the Gauge program, so I conjured this one.
  627. X *   To my chagrin, MM 1.0 broke when I got a 2000 (more on that shortly),
  628. X *   the Amiga 3000 blew away the previous version of this program, too,
  629. X *   of course.  But that's the way it is with hardware-oriented software
  630. X *   hacks! :-|  Changes with this version involve reconstruction of the
  631. X *   fast ram address menus to accomodate the A3000's 32-bit address space
  632. X *   for fast ram at 7000000 to 7FFFFFF hex.  Please note that Amiga DOS
  633. X *   allocates this space in heap fashion (autoconfiguring memory in
  634. X *   successively lower addresses starting from the top, while utilizing
  635. X *   it within each zone in the usual fashion from the bottom up).  The
  636. X *   following table describes how to set MM for various Amiga 3000 memory
  637. X *   configurations:
  638. X *                          Fast Ram Size    Base Address
  639. X *                              1 Meg           7f00000
  640. X *                              2 Meg           7e00000
  641. X *                              3 Meg           7d00000
  642. X *                              4 Meg           7c00000
  643. X *                              6 Meg           7a00000
  644. X *                              8 Meg           7800000
  645. X *                             10 Meg           7600000
  646. X *                             12 Meg           7400000
  647. X *                             14 Meg           7200000
  648. X *                             16 Meg           7000000
  649. X *   
  650. X *   MemMometer may be started from an icon, a CLI, or the Run command
  651. X *   from a CLI.  MM uses dynamic allocation for its display data, and
  652. X *   does its own resource tracking.  MM will surrender any resources
  653. X *   which it has successfully obtained from allocation requests if,
  654. X *   while MM is running, requested resources are denied.  This type
  655. X *   of fault (exit code 20) proceeds silently, and without prior notice.
  656. X *
  657. X *   Now for a run through MemMometer's menu mechanics.  MemMometer opens
  658. X *   with a non-interlaced-screen-height narrow window at the left side of
  659. X *   the Workbench screen.  The window width is the same as the width of the
  660. X *   capacity gauge which Workbench used to render at the left side of the
  661. X *   v1.3 top level window for a floppy volume.  As with Peter Da Silva's
  662. X *   original gauge program, the MemMometer has an E at the bottom of the
  663. X *   window, and an F at the top.
  664. X *
  665. X *   The E and the F are respectively, the window sizing gadget, and the
  666. X *   window titlebar.  While MemMometer can and does automatically arrange
  667. X *   the window to suit the memory configuration, it depends on the user to
  668. X *   select appropriate memory size and address values via the menus.  The
  669. X *   menu style is the usual Amiga Intuition menu set; selection is achieved
  670. X *   by clicking the left mouse button while the mouse pointer is anywhere
  671. X *   within the program's window boundary, and then activating the menu bar
  672. X *   by holding down the right mouse button and sliding the mouse pointer
  673. X *   along the Workbench screen title bar at the top of the Workbench screen.
  674. X *
  675. X *   At the left side of the Workbench screen title is the Project Menu.  The
  676. X *   Project Menu has three options.  The first option is "Front", which is a
  677. X *   window-to-front command for the event that the MM window was partially
  678. X *   buried by the opening of new windows after MM was invoked.   If the
  679. X *   right mouse button is released while the mouse pointer is directly over
  680. X *   the Front menu item, the MM window will oblige by popping forward to an
  681. X *   unobstructed view.  The second menu option is the "Back" item, which
  682. X *   will move the MM window back behind any other windows that have been
  683. X *   opened on the Workbench screen (with exception of a backdrop window).
  684. X *   The third Project menu option is the "Quit" option, which directs MM to
  685. X *   close its window and release the AmigaDOS resources it has allocated.
  686. X *   The normal return code is zero.
  687. X *
  688. X *   The second Intuition menu is the Setup menu.  There are two Setup menu
  689. X *   items.  The first item is the "Mode" item.  MM has two modes, and they
  690. X *   are selected by sliding the mouse pointer straight down from the screen
  691. X *   title bar over the Mode item , and then moving the pointer to the right
  692. X *   as the mode submenu is activated.  The activated submenu provides two
  693. X *   choices, "Frags" and "Warps".  Frags are rather much the same as they
  694. X *   were in Da Silva's gauge program.  "Frags" is the default menu selection
  695. X *   with which MM is first initialized.  The Frags display is described in
  696. X *   the following table:
  697. X *   
  698. X *               2-Color Workbench    4-Color Workbench    8-Color Workbench
  699. X *  Unallocated        Blue                 Black                Black
  700. X *  Allocated          White                Orange               Yellow
  701. X *  Fragmented         Blue                 Blue                 Blue 
  702. X *
  703. X *   Unallocated memory is free memory available to programs.  The programs
  704. X *   may obtain this memory from AmigaDOS through allocation requests.  The
  705. X *   Allocated memory is memory assigned to programs running under AmigaDOS.
  706. X *   Fragmented memory consists of interleaved small memhunks, some of which
  707. X *   are assigned to programs and some of which are in the free memory pool.
  708. X *   The smallest fragments are 8 bytes, and the largest memhunks may be more
  709. X *   than a megabyte.  The fragmented class is assigned when, in making the
  710. X *   MM window display, a single horizontal pixel line was found to represent
  711. X *   both allocated and unallocated memhunks.  For this reason, for a full
  712. X *   window height MemMometer, the resolution of the fragmentation is shown
  713. X *   in more detail on interlaced Amiga Workbench screens.
  714. X *
  715. X *   The second mode item selection is the "Warps" mode.  While the Frags
  716. X *   mode is usually utilized as a low-priority background indicator, the
  717. X *   Warps mode is usually utilized at a somewhat higher priority for the
  718. X *   purpose of tracking bugs and system irregularities.  In this context,
  719. X *   I define warps as a form of discretized sample-to-sample differencing
  720. X *   function for some arbitrary segment of memory.  Warps are determined by
  721. X *   dividing the selected address space evenly among the MemMometer display
  722. X *   pixels, computing an assignment checkfunction for each pixel line of the
  723. X *   display on the associated assigned memory space at some sample time, and
  724. X *   then, while retaining the previous pixel-by-pixel record, repeating the
  725. X *   same evaluation the second sample time and comparing the sequentially
  726. X *   determined checksums. A "checksum" is computed by means of a sequential
  727. X *   bit-wise eXclusive OR assignment.  This type of checksum can readily
  728. X *   detect zeroed or changed values.  In the table below, logical FALSE is
  729. X *   zero, logical TRUE is taken as 0xffffffff and VALUE is anything else.
  730. X *   Colors indicate the type of change.  Colors for the most part follow
  731. X *   the v1.3 standard CBM workbench color set; they're shown as follows:
  732. X *   
  733. X *                    Pen #   Color           Pen #   Color
  734. X *                      0     Blue              4     Green
  735. X *                      1     White             5     Red
  736. X *                      2     Black             6     Cyan
  737. X *                      3     Orange            7     Yellow
  738. X *
  739. X *   These colors are used to map the changes in memory content from sample
  740. X *   to sample as programs multitask together:
  741. X *
  742. X *   Condition        2-Color Workbench  4-Color Workbench  8-Color Workbench
  743. X *
  744. X *   VALUE ===> VALUE         Blue               Blue               Blue
  745. X *   VALUE =/=> VALUE         White              Orange             Orange
  746. X *   FALSE ===> FALSE         Blue               Black              Black
  747. X *   FALSE ---> VALUE         White              Orange             Yellow
  748. X *   VALUE ---> FALSE         White              White              Red
  749. X *   TRUE  ---> FALSE         Blue               Black              Cyan 
  750. X *   TRUE  ---> VALUE         Blue               Black              Cyan 
  751. X *   TRUE  ===> TRUE          Blue               Blue               Green
  752. X *   FALSE ---> TRUE          Blue               Blue               Green
  753. X *   VALUE ---> TRUE          Blue               Blue               Green
  754. X *
  755. X *   The second Setup menu item is a Frequency selection submenu.  While the
  756. X *   selected value does set a minimum frequency with which the memory state
  757. X *   will be examined, it's done by introducing a delay between measurements.
  758. X *   The introduced delay will be equal in seconds to the value selected in
  759. X *   the submenu.  The delay is accomplished by the AmigaDOS timer.device
  760. X *   using the VBLANK mode.  It was not thought worth the difficulty to make
  761. X *   the timing as precise as would be possible using the cia.resource, as
  762. X *   that might make the resource less useful to other programs, and as well
  763. X *   would mean extra effort adjusting for memory size-dependent scan times
  764. X *   from the various memory sizes selectable with the MM program.  Delay
  765. X *   intervals of 1, 2, 5, and 10 seconds are available.
  766. X *
  767. X *   The third Intuition menu is a Priority menu.  This menu applies only to
  768. X *   the MemMometer program and its associated CLI process.  Initially it is
  769. X *   at priority 0 with the expectation that the user will set it lower once
  770. X *   the program is running, in order to give more time to the other active
  771. X *   processes the user will be running.  A value of -50 is recommended.  In
  772. X *   the event the Priority of MM is changed via the menu, the CLI inherits
  773. X *   MemMometer's new priority and retains that priority even after MM quits.
  774. X *   Thus, with extreme priority settings, it may be better to "Run MM" to
  775. X *   keep from passing the extreme priority to subsequent processes spawned
  776. X *   from the CLI that was used to invoke MemMometer.  Also, go easy with the
  777. X *   positive priorities; remember that with AmigaDOS version 2.0 the DOS
  778. X *   input.device runs priority 20, the SCSI bus handler is 12, SCSI.device
  779. X *   is 11,  FileSystem is priority 10, and the CON: and trackdisk.device
  780. X *   are priority 5 usually.  Note that the first three MemMometer menu
  781. X *   items are used to increment or decrement a priority selected in the
  782. X *   lower part of the menu.  Selection of the "NORM" menu item removes any
  783. X *   increment or decrement previously set while at any given level.
  784. X *
  785. X *   The remaining Intuition menu selections are provided so that the range
  786. X *   and base address of the memory examined may be adjusted for the user's
  787. X *   Amiga memory configuration.  Note that the base address must always be
  788. X *   set to the correct base address for the given memory configuration in
  789. X *   order for the Frags option to work properly, but that the range may be
  790. X *   adjusted to give a better resolution for the first segments around the
  791. X *   base address, if desired.  Menus are provided for Chip memory, the old
  792. X *   Slow-Fast (C00000/Ranger) memory, and Fast memory.  While I have had no
  793. X *   difficulty as a result of selecting a range of memory that involved a
  794. X *   non-existent seqment for Chip or Fast memory in either Frags or Warps
  795. X *   mode, when I selected non-existent SFMemory on my Fat Agnus Amiga 2000
  796. X *   in Warps mode, it resulted in a total system-wide red Guru 4 (illegal
  797. X *   instruction exception).
  798. X *
  799. X *   After that, I decided to post a requester for the user to issue terse
  800. X *   warning that a crash is _possible_ with incorrectly specified menu
  801. X *   selections in warps mode.  Since it is possible, for example, to roll
  802. X *   over on 24-bit addresses via large memory size menu selections, one
  803. X *   can access forbidden zones through inappropriate settings of the Fast
  804. X *   Mem menus as well.  Thus MM also calls the requester if the Fast Mem
  805. X *   size menu is changed. The requester displays the message:
  806. X *
  807. X *                        WARNING! CRASH POSSIBLE
  808. X *                      MENU MEMORY SELECTIONS MUST
  809. X *                       REFERENCE EXISTING MEMORY
  810. X *
  811. X *                   Risk It                  Retreat
  812. X *
  813. X *   You don't have to worry about a crash if you really have an amount of
  814. X *   SF or Fast memory equal or greater than the amount you specified and
  815. X *   the base address is within what you specified (the default base address
  816. X *   for SF Mem is C00000 and 200000 for A2000 Fast Mem).  Too bad I have to
  817. X *   do this, but it is a matter the hardware regards seriously, as some
  818. X *   registers do things when they are read, never mind what they do when
  819. X *   they are written!  If you really want to be annoyed, just get Bryce
  820. X *   Nesbitt's Enforcer program.  It will yap at you through the serial port
  821. X *   every time any program (such as this one) reads the zero page...
  822. X *
  823. X *   So, here you see the two options.  The left button says - Risk It -.
  824. X *   That's a comfortable gamble if you know your Fast memory configuration.
  825. X *   Pre Fat-Agnus Amiga 2000 machines have 512K of Slow-Fast memory.  The
  826. X *   Newer 2000s have no C00000 Slow Fast memory, and the A3000 only has the
  827. X *   200000 ZorroII 16-bit Fast Memory if you added a Mem card - so beware
  828. X *   of this and try the other settings when you have nothing else going on,
  829. X *   until you gain a knowledge of what is safe.  The - Retreat - option sets
  830. X *   the SF or Fast Memory Size selected internal to the MemMometer program
  831. X *   to zero and clears the display.  (It does leave the menu items checked,
  832. X *   though, so you will have to remember to re-select suitable menu values
  833. X *   in order to get the display to show something in each existing memory
  834. X *   type.  For Chip and Fast memory this will simply entail going back into
  835. X *   the menu and again selecting whatever was previously checked.  The SF
  836. X *   memory size should be set either to appropriate values or to "NONE".)
  837. X *   
  838. X *   Note that in the display there may at any time be anywhere from one
  839. X *   to three MemMometers - for Chip (left-hand column), another for the
  840. X *   Slow Fast mem (center column) and yet another for Fast mem (right-hand
  841. X *   column).  These MemMometers can be turned on or off as desired by
  842. X *   selecting "NONE" or the various items in the Size menus.
  843. X *
  844. X *   Parts of several freely distributable  programs have been used to make
  845. X *   MemMometer.  Menus, for instance, are done in the style VT100 (Wecker,
  846. X *   et al).  As with the VT100 program, MemMometer has preset variables.
  847. X *   However, the program does not yet contain a script file reader or an
  848. X *   AREXX interface with which to automatically set the variables.  Likely
  849. X *   it is that I'll write the code for that some time this century!
  850. X *
  851. X *   MemMometer uses forbid() and permit() when it examines the mem list in
  852. X *   Frags mode.  I suppose it is possible with large amounts of memory to
  853. X *   scan, that some gross treachery can happen while the list is locked.
  854. X *   However, with my 4 meg Amiga 3000 I've not seen it.  It takes a while
  855. X *   after startup to settle out and display the large byte counts associated
  856. X *   with Fast mem, so be patient...  MemMometer is most useful for finding
  857. X *   out why large programs won't load.  It's also useful in development for
  858. X *   seeing the impact your application is having on memory fragmentation,
  859. X *   or how various programs (and viruses, for that matter) are allocating
  860. X *   memory.
  861. X *
  862. X *   The Warps mode displays any change it sees in memory from one sample
  863. X *   to the next; BUT this mode only works sensibly when JUST ONE memory size
  864. X *   selection is active (set others to "NONE").  The memory space is scanned
  865. X *   asynchronously, so it can have sample alias difficulties.  However, the
  866. X *   Warps mode does not use forbid(), permit(), enable(), disable(), or any
  867. X *   other constrictive system call.  It just does a lot of read-only memory
  868. X *   cycles and writes the result in its own dynamically allocated memory
  869. X *   space.
  870. X *
  871. X *   To run MemMometer, simply type
  872. X *
  873. X *      run MM
  874. X *
  875. X *      or  click on the icon.
  876. X *
  877. X *   Then open the menu item selections and set them for your configuration.
  878. X *   Frags mode, and 512K of CHIP @0 is the default these days, what with
  879. X *   hugh variety of configurations routinely encountered.  The modes are
  880. X *   are color coded into the "F" and "E" indicators in accordance with the
  881. X *   AmigaDOS v1.3 color table; AmigaDOS v2.0 looks pale by comparison:
  882. X *
  883. X *   Mode       Indicator       2 color WB      4 Color WB      8 Color WB
  884. X *
  885. X *   Frags          E                Blue            Blue            Blue
  886. X *   Warps          E                White           Orange          Yellow
  887. X *
  888. X *   One column:
  889. X *   Chip           F                Blue            Blue            Blue  
  890. X *   Slow-Fast      F                Blue            Black           Cyan
  891. X *   Fast           F                White           Orange          Yellow
  892. X *
  893. X *   Two columns:
  894. X *   Chip +SF       F                Blue            Blue            Blue
  895. X *   Chip +Fast     F                Blue            Black           Cyan
  896. X *   SF + Fast      F                White           Orange          Yellow
  897. X *
  898. X *   Three columns:
  899. X *   C + SF + Fast  F                Blue            Blue            Blue
  900. X *   None           F                White           Orange          Orange
  901. X *
  902. X *   The source code included with this distribution was compiled with the
  903. X *   Manx Aztec C compiler, version 3.6a in 16-bit integer mode.  Numerous
  904. X *   type casts in the code, as well as other non-alignments with the Lattice
  905. X *   environment would make compilation under versions of Lattice difficult.
  906. X *   Sorry.  Compilation instructions are of course in the makefile included
  907. X *   in the distribution.
  908. X *
  909. X *   About my part of C code - it wasn't done for speed, as I am sure you can
  910. X *   tell.  If I wanted speed I would have used assembly language.  It also
  911. X *   likely isn't elegant code, by a long shot (unless it's the part I got
  912. X *   from Rokicki's WFrags).  But assembly language is time-consuming to
  913. X *   write, so that won't happen any time soon.  Maybe the next thing will be
  914. X *   the AREXX port - so that other programs can specify a low address and a
  915. X *   byte count range for one of the MemMometers to display (say, within the
  916. X *   specified menu selection span).  Gross comments about the code or bug
  917. X *   reports may be e-mailed to me at the site domain specified below.
  918. X *
  919. X *   About everyone else's C code in MM - Let's see, VT100 (Wecker et al) has
  920. X *   been freely distributable since the early days of the Amiga.  When VT100
  921. X *   was first posted, Wecker did not prepend a copyright to the code.  He
  922. X *   later discovered that his employer (DEC) routinely required employees to
  923. X *   sign a contract statement which granted to DEC all rights with respect
  924. X *   to codes written by DEC employees, whether the codes were written on the
  925. X *   company's time/facilities or otherwise.  I do not know how the matter
  926. X *   was resolved, but VT100 still seems to be on the freely distributable
  927. X *   software list.  The menus in MM, while styled with the same code forms
  928. X *   as were used with VT100 v2.3, are of course different in content in any
  929. X *   case.  The WFrags program was, I believe, a version by Tom Rokicki (the
  930. X *   Amiga Tex guy) might be evolved from the Frags program originally put
  931. X *   to the net by Mike Meyer.  WFrags was submitted to the net without a
  932. X *   prepended copyright notice, evidently intended  as freely distributable
  933. X *   software.
  934. X *
  935. X *   The spirit of these contributions is that they are not to be used for
  936. X *   commercial purposes, and the original authors certainly appreciate
  937. X *   being cited for their work.  So I just did that.  The timer codes are
  938. X *   exerpted from a network article by Andy Finkel of CBM, submitted as a
  939. X *   demonstration of the ease of implementing the Amiga timer.device in C.
  940. X *
  941. X *   So, for my part, I add no further restrictions to the codes in MM.
  942. X *   In that spirit, I hereby submit the following Standard Disclaimer:
  943. X *
  944. X *   The authors accept no responsibility for anything either beneficial or
  945. X *   detrimental that may happen as a result of using the codes in MM.  The
  946. X *   codes are intended for non-commercial use only.
  947. X *   
  948. X *
  949. X *   Howard Hull  hull@ncar.edu
  950. X *
  951. X */
  952. END_OF_FILE
  953. if test 20804 -ne `wc -c <'mm.doc'`; then
  954.     echo shar: \"'mm.doc'\" unpacked with wrong size!
  955. fi
  956. # end of 'mm.doc'
  957. fi
  958. if test -f 'mm.doc.info.uu' -a "${1}" != "-c" ; then 
  959.   echo shar: Will not clobber existing file \"'mm.doc.info.uu'\"
  960. else
  961. echo shar: Extracting \"'mm.doc.info.uu'\" \(3641 characters\)
  962. sed "s/^X//" >'mm.doc.info.uu' <<'END_OF_FILE'
  963. Xbegin 644 mm.doc.info
  964. XMXQ```0``````=P`/`&(`'0`&``,``0?&\S@'QO.(````````````````````#
  965. XM```!!)X'Q;D8`````````',````$``````````````````````!B`!T``P`"[
  966. XM3/C_`````````````````````````````````$5555550```````````15_55
  967. XM555```````````!%5M55544``````````$569]?51P``````````159G9V5'3
  968. XM``````````!%5F9F14<``````````$56QF9U1P``````````15_'Q\5'````T
  969. XM``````!%5!4%!4<``````````$5555551P``````````1?UU=55'````````G
  970. XM``!%S%%Q54<``````````$7$=7%]1P``````````1?5Q<<U'``````````!%7
  971. XMP7%Q_$<``````````$7%<7'`1P``````````1>5Y>7U'``````````!%!4%!%
  972. XM04<``````````$5555551P``````````1555555'``````````!%555554<`H
  973. XM`````````$5555551P``````````15550`%'``````````!%555554<`````W
  974. XM````````````!P``````````+_______```````````55555554`````````O
  975. XM```````````````````!_______X``````````'_______@``````````?_P8
  976. XM?____\`````````!__D_____P`````````'_^9P\/_O``````````?_YF9F?&
  977. XM^\`````````!__F9F?_[P`````````'_^3F9G_O``````````?_P?#P_^\``G
  978. XM```````!_______[P`````````'_______O``````````?X#SX__^\``````(
  979. XM```!_S/_S__[P`````````'_/X_/A_O``````````?\/S\\S^\`````````!V
  980. XM_S_/SP/[P`````````'_/\_//_O``````````?X?AX>#^\`````````!____9
  981. XM___[P`````````'_______O``````````?______^\`````````!_______[>
  982. XMP`````````'_______O``````````?______^\`````````!_______[P```E
  983. XM``````'_______O``````````?@``````\``````````________P```````M
  984. XM``!________`````````````````````````````````````````````````Z
  985. XM#X`````````````````&P`````````````````9CP\``````````````!F9F3
  986. XM8``````````````&9F8```````````````;&9F``````````````#X/#P```9
  987. XM```````````````````````````````````````````````!_#!P````````=
  988. XM``````#,`#```````````````,!P,'@`````````````\#`PS```````````P
  989. XM``#`,##\`````````````,`P,,`````````````!X'AX?```````````````)
  990. XM`````````````````````````````````````````````````````````````
  991. XM```````````````````````````````````?_@``````````````````````=
  992. XM`````````````````````````````````````````````````````````````
  993. XM`````````````````````&(`'0`#``)1P/\`````````````````````````4
  994. XM*JJJJJJH!5555555```W______Z_______L``#?______K^_P```"P``-___^
  995. XM___^O__``"`+```WZJJJJN`#J\````L``#?______K__P4$""P``-______^,
  996. XMOZO`X8N+```W______Z__\+PP>L``#?55555?K^KQ/-)ZP``-______^O__!\
  997. XM;G/K```W555557Z_J\JL@"L``#?______K__U5552P``-U55555^OZO````+7
  998. XM```W_____^`#______L``#=55555?K^K_U5_^P``-______^O______[```WL
  999. XMU55557Z_JJJJJKL``#?______K______^P``-U55555^OZJJJJJ[```W____Z
  1000. XM__Z_______L``#=55555?K^JJJJJNP``-______^O______[```W_____^`#;
  1001. XM______L``#?__U___K___K__^P``-______^O______[```P``````"`````4
  1002. XM``,``"JJJJJJJ`55555550````````````````````#_______X?_______`^
  1003. XM`/_______________\``^``````!P``````'P`#X``````'`0#____?``/@`9
  1004. XM`````<``(```%\``^``````?_%0@```7P`#X``````'``""``!?``/@`````^
  1005. XM`<!4(R($%\``^``````!P``O][X7P`#X*JJJJH'`5#___Y?``/@``````<``K
  1006. XM/7__]\``^*JJJJJ!P%0X!_^WP`#X``````'``#```!?``/BJJJJJ@<!4/___.
  1007. XM]\``^``````?_``````'P`#XJJJJJH'`5`"J@`?``/@``````<``````!\``W
  1008. XM^"JJJJJ!P%55555'P`#X``````'```````?``/BJJJJJ@<!555551\``^```P
  1009. XM```!P``````'P`#XJJJJJH'`555554?``/@``````<``````!\``^``````?;
  1010. XM_``````'P`#X``"@``'```%```?``/@``````<``````!\``____________;
  1011. XM____P`#________________``/_______A_______\``````````````````$
  1012. XM`````````````````````````````````````````````````````````````
  1013. XM`````````````````````````````````````````````````````````````
  1014. XM````````````````````````````````````````````(0"`````````````A
  1015. XM``/$(2``````````````!_A_P``````````````/___@````````````````S
  1016. XM`````````````````````````````````````````````````````````````
  1017. XM`````````````````````````````````````````````````````````````
  1018. XM`````````````````````````````````````````````````````````````
  1019. XM`````````````````````````````````````````````````````````````
  1020. XM``````````````````````````````````````````````````PZ8R]-=6-HE
  1021. X%36]R90``3
  1022. X``
  1023. Xend
  1024. Xsize 2570
  1025. END_OF_FILE
  1026. if test 3641 -ne `wc -c <'mm.doc.info.uu'`; then
  1027.     echo shar: \"'mm.doc.info.uu'\" unpacked with wrong size!
  1028. fi
  1029. # end of 'mm.doc.info.uu'
  1030. fi
  1031. if test -f 'mm.h' -a "${1}" != "-c" ; then 
  1032.   echo shar: Will not clobber existing file \"'mm.h'\"
  1033. else
  1034. echo shar: Extracting \"'mm.h'\" \(757 characters\)
  1035. sed "s/^X//" >'mm.h' <<'END_OF_FILE'
  1036. X/* : ai=0 bk=0 ts=8 */
  1037. X#include <intuition/intuition.h>
  1038. X#include <intuition/intuitionbase.h>
  1039. X#include <graphics/gfx.h>
  1040. X#include <graphics/gfxbase.h>
  1041. X#include <exec/exec.h>
  1042. X#include <exec/execbase.h>
  1043. X#include <functions.h>
  1044. X
  1045. X/* standard and suggested Workbench pen colors */
  1046. X
  1047. X#define BLUP 0L        /* CBM Workbench medium (IBM) blue */
  1048. X#define WHTP 1L        /* CBM Workbench pure white */
  1049. X#define BLKP 2L        /* CBM Workbench black with elevated blue */
  1050. X#define ORNP 3L        /* CBM Workbench orange */
  1051. X#define GRNP 4L        /* CBM Workbench pure blue */
  1052. X#define REDP 5L        /* CBM Workbench magenta */
  1053. X#define CYNP 6L        /* CBM Workbench cyan */
  1054. X#define YELP 7L        /* CBM Workbench duplicates white here */
  1055. X
  1056. Xextern struct Window *window ;
  1057. X
  1058. END_OF_FILE
  1059. if test 757 -ne `wc -c <'mm.h'`; then
  1060.     echo shar: \"'mm.h'\" unpacked with wrong size!
  1061. fi
  1062. # end of 'mm.h'
  1063. fi
  1064. echo shar: End of archive 1 \(of 2\).
  1065. cp /dev/null ark1isdone
  1066. MISSING=""
  1067. for I in 1 2 ; do
  1068.     if test ! -f ark${I}isdone ; then
  1069.     MISSING="${MISSING} ${I}"
  1070.     fi
  1071. done
  1072. if test "${MISSING}" = "" ; then
  1073.     echo You have unpacked both archives.
  1074.     rm -f ark[1-9]isdone
  1075. else
  1076.     echo You still need to unpack the following archives:
  1077.     echo "        " ${MISSING}
  1078. fi
  1079. ##  End of shell archive.
  1080. exit 0
  1081. -- 
  1082. Mail submissions (sources or binaries) to <amiga@uunet.uu.net>.
  1083. Mail comments to the moderator at <amiga-request@uunet.uu.net>.
  1084. Post requests for sources, and general discussion to comp.sys.amiga.misc.
  1085.